package cn.iocoder.yudao.module.mqtt.controller.admin.device.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - IoT 设备分页 Request VO")
@Data
public class DevicePageReqVO extends PageParam {

    @Schema(description = "设备分组编号集合")
    private Long groupId;

    @Schema(description = "角色集合")
    private String roleIds;

    @Schema(description = "mqtt_config的ID", example = "10815")
    private Long mqttConfigId;

    @Schema(description = "报警状态", example = "10815")
    private String alarmStatus;

    @Schema(description = "默认报警", example = "10815")
    private String alarmDefult;


    @Schema(description = "MQTT 客户端 ID", example = "20857")
    private String mqttClientId;

    @Schema(description = "设备唯一标识符，全局唯一，用于识别设备")
    private String deviceKey;

    @Schema(description = "设备名称", example = "芋艿")
    private String deviceName;

    @Schema(description = "上报名称", example = "上报名称")
    private String countryName;

    @Schema(description = "备注设备名称", example = "李四")
    private String nickname;

    @Schema(description = "设备类型", example = "2")
    private Integer deviceType;

    @Schema(description = "网关SN编号", example = "16881")
    private Long gatewayId;

    @Schema(description = "联网方式", example = "2")
    private String networkType;

    @Schema(description = "信号")
    private String signalStrength;

    @Schema(description = "设备状态(网关)")
    private String getewayStatus;
    @Schema(description = "设备在线(MQTT)")
    private String isOnline;


    @Schema(description = "设备详细地址")
    private String address;

    @Schema(description = "0 不上传 1 需要上传")
    private String isUpload;

    @Schema(description = "固件版本	")
    private String firmwareVersion;

    @Schema(description = "物联网卡号(ICCID) (网关)", example = "20000")
    private String firmwareId;

    @Schema(description = "设备图片", example = "https://www.iocoder.cn")
    private String picUrl;

    @Schema(description = "地区编码", example = "30089")
    private Integer areaId;

    @Schema(description = "设备位置的经度")
    private BigDecimal longitude;

    @Schema(description = "设备位置的纬度")
    private BigDecimal latitude;



    @Schema(description = "省")
    private String province;

    @Schema(description = "市", example = "26106")
    private String city;

    @Schema(description = "区")
    private String district;


    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "设备ID集合")
    private String ids;

    @Schema(description = "设备List")
    private List<Long> idList;

    @Schema(description = "角色id")
    private Long roleId;

    @Schema(description = "是否排除已分配标识")
    private Boolean excludeAssigned;
}